/**
 * 
 */
package paul.chevalier.model;

import java.util.Date;

/**
 * @author PCH08346
 * 
 */
public class Ephemeryde {
	Date date;
	String event;
	String eventDescription;
	String merydeName;
	String merydeDescription;
	BONUS_TYPE bonusType;
	Bonus bonus;

	/**
	 * @return the date
	 */
	public Date getDate() {
		return date;
	}

	/**
	 * @param date
	 *            the date to set
	 */
	public void setDate(Date date) {
		this.date = date;
	}

	/**
	 * @return the event
	 */
	public String getEvent() {
		return event;
	}

	/**
	 * @param event
	 *            the event to set
	 */
	public void setEvent(String event) {
		this.event = event;
	}

	/**
	 * @return the eventDescription
	 */
	public String getEventDescription() {
		return eventDescription;
	}

	/**
	 * @param eventDescription
	 *            the eventDescription to set
	 */
	public void setEventDescription(String eventDescription) {
		this.eventDescription = eventDescription;
	}

	/**
	 * @return the merydeName
	 */
	public String getMerydeName() {
		return merydeName;
	}

	/**
	 * @param merydeName
	 *            the merydeName to set
	 */
	public void setMerydeName(String merydeName) {
		this.merydeName = merydeName;
	}

	/**
	 * @return the merydeDescription
	 */
	public String getMerydeDescription() {
		return merydeDescription;
	}

	/**
	 * @param merydeDescription
	 *            the merydeDescription to set
	 */
	public void setMerydeDescription(String merydeDescription) {
		this.merydeDescription = merydeDescription;
	}

	/**
	 * @return the bonusType
	 */
	public BONUS_TYPE getBonusType() {
		return bonusType;
	}

	/**
	 * @param bonusType
	 *            the bonusType to set
	 */
	public void setBonusType(BONUS_TYPE bonusType) {
		this.bonusType = bonusType;
	}

	/**
	 * @return the bonus
	 */
	public Bonus getBonus() {
		return bonus;
	}

	/**
	 * @param bonus
	 *            the bonus to set
	 */
	public void setBonus(Bonus bonus) {
		this.bonus = bonus;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Ephemeryde [date=" + date + ", event=" + event + ", eventDescription=" + eventDescription + ", merydeName=" + merydeName + ", merydeDescription=" + merydeDescription + ", bonusType="
				+ bonusType + ", bonus=" + bonus + "]";
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((bonus == null) ? 0 : bonus.hashCode());
		result = prime * result + ((bonusType == null) ? 0 : bonusType.hashCode());
		result = prime * result + ((date == null) ? 0 : date.hashCode());
		result = prime * result + ((event == null) ? 0 : event.hashCode());
		result = prime * result + ((eventDescription == null) ? 0 : eventDescription.hashCode());
		result = prime * result + ((merydeDescription == null) ? 0 : merydeDescription.hashCode());
		result = prime * result + ((merydeName == null) ? 0 : merydeName.hashCode());
		return result;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		Ephemeryde other = (Ephemeryde) obj;
		if (bonus == null) {
			if (other.bonus != null) {
				return false;
			}
		} else if (!bonus.equals(other.bonus)) {
			return false;
		}
		if (bonusType != other.bonusType) {
			return false;
		}
		if (date == null) {
			if (other.date != null) {
				return false;
			}
		} else if (!date.equals(other.date)) {
			return false;
		}
		if (event == null) {
			if (other.event != null) {
				return false;
			}
		} else if (!event.equals(other.event)) {
			return false;
		}
		if (eventDescription == null) {
			if (other.eventDescription != null) {
				return false;
			}
		} else if (!eventDescription.equals(other.eventDescription)) {
			return false;
		}
		if (merydeDescription == null) {
			if (other.merydeDescription != null) {
				return false;
			}
		} else if (!merydeDescription.equals(other.merydeDescription)) {
			return false;
		}
		if (merydeName == null) {
			if (other.merydeName != null) {
				return false;
			}
		} else if (!merydeName.equals(other.merydeName)) {
			return false;
		}
		return true;
	}

}
